home *** CD-ROM | disk | FTP | other *** search
- #
- # This file demonstrates new features in gnuplot 3.6
- # -1- saving contour lines as a gnuplottable file
- # -2- plotting a vector field on the same graph
- # -3- manipulating columns using the '$1,$2' syntax.
- # the example is taken here from Physics is the display of equipotential
- # lines and electrostatic field for a dipole (+q,-q)
- print "\n This file demonstrates new features in gnuplot 3.6"
- print " -1- saving contour lines as a gnuplottable file"
- print " -2- plotting a vector field on the same graph"
- print " -3- manipulating columns using the '$1,$2' syntax."
- print " the example is taken here from Physics is the display of equipotential"
- print " lines and electrostatic field for a dipole (+q,-q)"
- print "\n Please note that this demo runs only on x11 term, because"
- print " It needs to change term to table and then back to screen,"
- print " and gnuplot currently has no way of saving current terminal."
- pause -1 "<CR> to continue"
- #
- r(x,y)=sqrt(x*x+y*y)
- v1(x,y)= q1/(r((x-x0),y))
- v2(x,y)= q2/(r((x+x0),y))
- #
- vtot(x,y)=v1(x,y)+v2(x,y)
- #
- e1x(x,y)= q1*(x-x0)/r(x-x0,y)**3
- e1y(x,y)= q1*(y)/r(x-x0,y)**3
- e2x(x,y)= q2*(x+x0)/r(x+x0,y)**3
- e2y(x,y)= q2*(y)/r(x+x0,y)**3
- etotx(x,y)=e1x(x,y)+e2x(x,y)
- etoty(x,y)=e1y(x,y)+e2y(x,y)
- enorm(x,y)=sqrt(etotx(x,y)*etotx(x,y)+etoty(x,y)*etoty(x,y))
- dx1(x,y)=coef*etotx(x,y)/enorm(x,y)
- dy1(x,y)=coef*etoty(x,y)/enorm(x,y)
- dx2(x,y)=coef*etotx(x,y)
- dy2(x,y)=coef*etoty(x,y)
- #
- coef=.7
- x0=1.
- q1=1
- q2=-1
- xmin=-10.
- xmax=10.
- ymin=-10.
- ymax=10.
- #
- reset
- set term x11
- set noautoscale
- set xr [xmin:xmax]
- set yr [ymin:ymax]
- set isosam 31,31
- set view 0, 0, 1, 1
- set nosurface
- set contour base
- set cntrparam order 4
- set cntrparam linear
- set cntrparam levels discrete -3,-2 ,-1 ,-0.5 ,-0.2 ,-0.1 ,-0.05 ,-0.02 ,0 ,0.02 ,0.05 ,0.1 ,0.2 ,0.5 ,1 ,2 ,3
- set cntrparam points 5
- #
- set label "-q" at -1,0 center
- set label "+q" at 1,0 center
- splot vtot(x,y) w l
- pause -1 "Now create a file with equipotential lines <CR> to continue"
- set term table
- set out "equipo2.dat"
- rep
- set out
- set term x11
- reset
- plot "equipo2.dat" w l
- pause 0 "Now create a x/y datafile for plotting with vectors "
- pause 0"and display vectors parallel to the electrostatic field"
- pause -1 "<CR> to continue"
- set isosam 31,31
- set term table
- set out "field2xy.dat"
- splot vtot(x,y) w l
- set out
- set term x11
- set noautoscale
- set xr [xmin:xmax]
- set yr [ymin:ymax]
- set isosam 31,31
- plot "field2xy.dat" u 1:2:(coef*dx1($1,$2)):(coef*dy1($1,$2)) w vec, \
- "equipo2.dat" w l
- pause -1 "<CR> to exit"
-